package com.example.smartwaterapi.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;

/**
 * 文件存储服务接口
 */
public interface FileStorageService {

    /**
     * 上传文件
     *
     * @param file     文件
     * @param folder   文件夹
     * @return 文件URL
     * @throws IOException IO异常
     */
    String uploadFile(MultipartFile file, String folder) throws IOException;

    /**
     * 上传文件
     *
     * @param inputStream 输入流
     * @param filename    文件名
     * @param folder      文件夹
     * @return 文件URL
     * @throws IOException IO异常
     */
    String uploadFile(InputStream inputStream, String filename, String folder) throws IOException;

    /**
     * 上传字符串内容
     *
     * @param content  字符串内容
     * @param filename 文件名
     * @param folder   文件夹
     * @return 文件URL
     */
    String uploadString(String content, String filename, String folder);

    /**
     * 删除文件
     *
     * @param fileUrl 文件URL
     */
    void deleteFile(String fileUrl);

    /**
     * 获取文件输入流
     *
     * @param fileUrl 文件URL
     * @return 文件输入流
     * @throws IOException IO异常
     */
    InputStream getFileInputStream(String fileUrl) throws IOException;
} 